<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    Object 对象的静态方法22
    1. *Objcect.assign(obj1,obj2,...) 合并对象
    2. *Object.create(XXX[,初始化的对象]) 创建一个对象，原型指向XXX
    Object.create(null) 创建一个没有原型链的空对象
    3. Object.entries()返回一个数组(二维数组)，
    成员是参数对象自身的（不含继承的）所有可遍历（enumerable）属性的键值对数组（二维数组）。
    4. Object.fromEntries(arr) 将指定数组（二维数组）转换为对象
    5. Object.getPrototypeOf(XXX) 查找某个对象的原型对象
    6. *Object.setPrototypeOf(obj,原型对象(XXX)) 给obj 修改原型对象(XXX)
    7. Object.getOwnPropertyNames(XXX)方法返回一个数组，
    成员是参数对象本身的所有属性的键名(可枚举)，不包含继承的属性键名
    8.Object.getOwnPropertyDescriptor(obj,prop)
    返回指定对象上一个自有属性对应的属性描述符。（自有属性指的是直接赋予该对象的属性，不需要从原型链上进行查找的属性）.
    如果指定的属性存在于对象上，则返回其属性描述符对象（property descriptor），否则返回 undefined。

    <script>
        let obj = {
            name: "lili",
            age: 18
        };
        console.log(obj);
        let newObj = Object.create(Object, {
            name: {
                value: 'lili',
                writable: true,
                configurable: true,
                enumerable: true
            },
            age: {
                value: 18
            }
        })
        console.log(newObj);


        // console.dir(Object);

        //console.log(Object.getOwnPropertyNames(obj));

        //    console.log(Object.getOwnPropertyDescriptor(obj,"num"));
        //    console.log(Object.getOwnPropertyDescriptors(obj));




        // let arr = [1, 2, 3];
        // Object.setPrototypeOf(arr, Date.prototype);
        // console.log(arr);

        // console.log(Object.getPrototypeOf(arr));//Array.prototype

        //    let arrTwo=Object.entries(arr);
        //    console.log(Object.fromEntries(arrTwo));

        // let obja = Object.create({ name: "lili" }, {
        //     n: {
        //         writable: true,
        //         configurable: true,
        //         enumerable: true,
        //         value: 10
        //     }
        // });
        // console.log(obja);

    // let obja=Object.create(null)
    // console.log(obja);


    </script>
</body>

</html>n